import os
import json


def json_to_txt(input_dir, output_dir):
    """
    将指定文件夹内的JSON文件转换为TXT文件
    :param input_dir: JSON文件所在目录
    :param output_dir: 输出TXT文件目录
    """
    # 确保输出目录存在
    os.makedirs(output_dir, exist_ok=True)

    # 遍历输入目录
    for filename in os.listdir(input_dir):
        if filename.endswith('.json'):
            json_path = os.path.join(input_dir, filename)
            txt_filename = os.path.splitext(filename)[0] + '.txt'
            txt_path = os.path.join(output_dir, txt_filename)

            try:
                # 读取JSON文件
                with open(json_path, 'r', encoding='utf-8') as f:
                    data = json.load(f)

                # 写入TXT文件
                with open(txt_path, 'w', encoding='utf-8') as f:
                    if isinstance(data, dict):
                        # 如果是字典类型，按key-value格式写入
                        for k, v in data.items():
                            f.write(f"{k}: {v}\n")
                    elif isinstance(data, list):
                        # 如果是列表类型，逐行写入
                        for item in data:
                            f.write(f"{json.dumps(item, ensure_ascii=False)}\n")
                    else:
                        # 其他类型直接写入
                        f.write(str(data))

                print(f"转换成功: {filename} -> {txt_filename}")

            except Exception as e:
                print(f"处理文件 {filename} 时出错: {str(e)}")


if __name__ == "__main__":
    # 使用示例
    input_folder = r"D:\BaiduNetdiskDownload\data\原始数据json\300-325"  # JSON文件所在目录
    output_folder = r"D:\BaiduNetdiskDownload\data\原始数据txt\300-325"  # TXT文件输出目录

    json_to_txt(input_folder, output_folder)
    print("全部转换完成！")